package com.demo.java.OD101_150.OD116;

import java.util.Scanner;

/**
 * @author bug菌
 * @Source 公众号：猿圈奇妙屋
 * @des： 【最长连续子串】问题
 * @url： https://blog.csdn.net/weixin_43970743/article/details/145698582
 */
public class OdMain {
    public static void main(String[] args) {
        try {
            Scanner scan = new Scanner(System.in);
            // 读取输入字符串
            String inputStr = scan.nextLine();

            // 如果输入为空，或输入字符串长度为0，输出 -1
            if (inputStr == null || inputStr.length() == 0) {
                System.out.println("-1");
                return;
            }

            // 将字符串转换为字符数组，遍历每个字符，确保每个字符都是数字或字母
            char[] chars = inputStr.toCharArray();
            for (char c : chars) {
                // 判断是否为数字或字母，如果有其他字符，则返回 -1
                if (!(('0' <= c && c <= '9') || (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z'))) {
                    System.out.println("-1");
                    return;
                }
            }

            // 初始化左边界（leftIndex）和右边界（rightIndex），用于滑动窗口
            int leftIndex = 0;
            int rightIndex = 1;
            // 初始化最大子串长度
            int max = -1;

            // 使用滑动窗口法
            while (rightIndex < inputStr.length() && leftIndex < inputStr.length()) {
                ++rightIndex;  // 扩展右边界

                // 获取当前窗口内的子串
                String subStr = inputStr.substring(leftIndex, rightIndex);

                // 将子串中的数字替换为空字符
                String replaceStr = subStr.replaceAll("[0-9]", "");

                // 如果替换后的子串长度小于原子串长度，说明子串内有数字
                // 且替换后长度小于或等于原子串，说明子串最多只有一个数字
                boolean flag = replaceStr.length() != subStr.length() && replaceStr.length() <= 1;

                // 如果符合条件，更新最大子串长度
                if (flag) {
                    max = Math.max(max, subStr.length());
                } else {
                    // 如果子串不符合条件，缩小窗口的左边界
                    leftIndex++;
                }
            }

            // 输出最大符合条件的子串长度
            System.out.println(max);

        } catch (Exception e) {
            // 捕获异常并输出 -1
            e.printStackTrace();
            System.out.println("-1");
        }
    }
}